A packet or datagram is a piece of a message transmitted over a packet-switching network. An example of a packet-switching network is the Internet where enormous quantities of data are communicated between various network points. In the Internet environment, content to be communicated between two endpoints is broken up into packets and these packets may follow different paths whilst travelling between the endpoints. It will be appreciated that the contents of packets may be benign or malicious.
An example of malicious content in a packet is data associated with viruses, computer worms, or the like. In these circumstances, it may be advantageous to identify the content in packets and thus identify the presence of these malicious viruses, worms, or the like. The content in a packet may thus have a “signature” which may identify the content and, when identified, allow appropriate action to be taken to reduce the likelihood of infection.
It is also useful to identify the content in a packet to facilitate content routing. For example, a packet may be routed to a specific server based on the content in the packet. In other embodiments, the content in the packet may be used to enforce copyright protection, to perform rate limiting (e.g. rate limiting in peer-to-peer traffic based on content signatures because often such traffic tunnels in under standard web ports and can only be identified by content signatures), to perform monitoring of Voice over IP (VoIP) conversations (e.g. tapping a VoIP phone), and other networking applications.
It will thus be appreciated that the monitoring or identification of the content in packets is of considerable value and only a few example applications are described above.